Field
The disclosed embodiments relate to techniques for improving the development and testing of software programs. More specifically, the disclosed embodiments relate to techniques for diagnosing test failures in software programs.
Related Art
During the development of a program, software developers generally perform software testing on the software program as a part of quality assurance. Software testing is a process designed to uncover defects within the software program. Defects, which are also referred to as bugs, cause differences between the actual and expected behaviors within the program. While running one or more tests against the program during software testing, test failures can inform developers about a defect within the program, thereby enabling the developers to fix the defect.
However, in cases where the software program has multiple known defects, it may be difficult to determine which defect caused the test failure. Note that the test failure may be caused by different defects at different times. In other cases, it may be difficult to reproduce the test failure if the defect that caused the test failure arises only when specific conditions are met in the software program's operating environment. Hence, the development and testing of software programs may be facilitated by a system that assists in determining relationships between test failures and known defects in software programs.